Cambio de Receta vía HTTP con Node-RED
Este tutorial le muestra cómo cambiar recetas de forma remota en su cámara OV20i usando simples solicitudes HTTP. Construirá un sistema que permita a cualquier dispositivo en su red cambiar entre diferentes configuraciones de inspección al instante, perfecto para líneas de producción con múltiples productos.
Lo que va a construir: Un sistema de conmutación de recetas remoto que responde a comandos HTTP desde tabletas, computadoras, PLCs, o cualquier dispositivo que pueda enviar solicitudes web.
Tiempo estimado: 15-20 minutos
Nivel de habilidad: Principiante
Ejemplo real: Considere a un operador que escanea un código de barras en su tableta, y la cámara cambia automáticamente a la receta correcta para ese producto; eso es exactamente lo que estamos construyendo.
¿Por qué los cambios de receta mediante HTTP facilitan el trabajo?
La OV20i facilita el cambio remoto de recetas de la siguiente manera:
- Cualquier dispositivo puede activar - tabletas, PLCs, computadoras, incluso teléfonos inteligentes
- Cambio instantáneo - las recetas cambian en menos de un segundo
- Sin configuración compleja - solo unos nodos en Node-RED
- Funciona con sistemas existentes - se integra con lo que ya tiene
Perfecto para: Líneas con múltiples productos, paneles de control del operador, sistemas automatizados, o en cualquier lugar donde necesite cambios rápidos de receta.
Prerrequisitos
Antes de empezar, asegúrese de tener:
- Cámara OV20i conectada y funcionando
- Al menos 2 recetas creadas y listas para usar
- Acceso a Node-RED (a través de IO Block)
Necesitará los números de ID de receta; estos se encuentran en la barra de direcciones de su navegador al editar las recetas.
Paso 1: Encontrar Sus Números de Receta
1.1 Obtener IDs de Receta
- Abrir cualquier receta en el Editor de Recetas
- Mirar la barra de direcciones de su navegador
- Encontrar el número después de
/recipe/
(ejemplo:/recipe/15
significa que el ID de Receta es 15) - Anote los IDs para todas las recetas entre las que quiera cambiar
¿Por qué estos números? Cada receta tiene un ID único que nunca cambia; esto es lo que la cámara usa internamente.
Paso 2: Abrir Node-RED
2.1 Acceder al Flow Builder
- En cualquier Editor de Recetas, haga clic en "IO Block"
- Haga clic en "Configure IO"
Ahora está en Node-RED donde construiremos su sistema de conmutación de recetas!
2.2 Planifique su Configuración
Aquí está lo que vamos a construir:
Button Click → Format Request → Send to Camera → See Result
¡Fácil! La cámara tiene un servidor web integrado que escucha las solicitudes de cambio de receta.
Paso 3: Construya su Cambiador de Recetas
3.1 Añada los Nodos Básicos
Arrastre estos 4 nodos a su lienzo:
- Inject (desde la sección Input) - Su botón de "cambiar receta"
- Function (desde la sección Function) - Formatea la solicitud correctamente
- HTTP Request (desde la sección Network) - Envía el comando a la cámara
- Debug (desde la sección Output) - Muestra si funcionó
3.2 Conéctelos
Conéctelos así exactamente:
Inject → Function → HTTP Request → Debug
¡Fácil! Ahora configuremos cada uno.
Paso 4: Configurar sus Nodos
4.1 Configurar su Botón de Receta
- Haga doble clic en el nodo Inject
- Cambie el nombre a "Cambiar a Receta 15" (utilice su ID de receta real)
- Configure la Carga Útil en "15" (su número de ID de receta)
- Haga clic en "Listo"
4.2 Configurar el Formateador de Solicitudes
- Haga doble clic en el nodo Function
- Nómbrelo "Formato de Solicitud"
- Copie este código simple:
// Get recipe number from button
let recipeID = msg.payload;
// Set up the web request
msg.headers = {'Content-Type': 'application/json'};
msg.payload = JSON.stringify({ id: recipeID });
return msg;
- Haga clic en "Listo"
Qué hace esto: Toma su número de receta y lo empaqueta de la forma que la cámara espera.
4.3 Configurar la Solicitud HTTP
- Haga doble clic en el nodo HTTP Request
- Configure el Método en "POST"
- Configure la URL en
localhost:5001/pipeline/activate
- Nómbrelo "Cambiar Receta"
- Haga clic en "Listo"
Antes de la versión 18.92: use http://[CAMERA_IP]/edge/pipeline/activate
Versión 18.92 y posteriores: use http://localhost:5001/pipeline/activate
4.4 Configurar el Monitor de Respuesta
- Haga doble clic en el nodo Debug
- Nómbrelo "Resultado del Cambio de Receta"
- Haga clic en "Listo"
¡Perfecto! Su cambair de receta está listo para probar.
Paso 5: Probar su Cambiador de Recetas
5.1 Desplegar y Probar
- Haga clic en el botón rojo "Desplegar"
- Haga clic en su botón de inyección (Cambiar a Receta 15)
- Observe el panel de depuración para la respuesta
5.2 Verifique si Funcionó
Señales de éxito:
- El panel de depuración muestra
"success": true
- La interfaz de la cámara muestra el nuevo nombre de la receta
- No hay mensajes de error en el panel de depuración
Si funcionó: ¡Felicidades! Acaba de cambiar las recetas de forma remota.
Si no: Revise la sección de solución de problemas a continuación.
5.3 Agregue más Botones de Receta
¿Quiere varias recetas? Simplemente agregue más nodos Inject:
- Botón de Receta 10: Carga útil = "10", Nombre = "Cambiar a Receta 10"
- Botón de Receta 23: Carga útil = "23", Nombre = "Cambiar a Receta 23"
- Todos conectados al mismo nodo Function
Paso 6: Usar desde Otros Dispositivos
¡Ahora la parte divertida! Cualquier dispositivo puede cambiar recetas enviando solicitudes web a su cámara.
6.1 Desde Cualquier Navegador Web
Escriba esto en cualquier navegador de su red:
http://192.168.0.100:5001/pipeline/activate
Reemplace con la dirección IP de su cámara.
6.2 Desde la Línea de Comandos
Windows/Mac/Linux - cambiar a la receta 15:
curl -X POST http://192.168.0.100:5001/pipeline/activate \
-H "Content-Type: application/json" \
-d '{"id": "15"}'
6.3 Desde PLCs y Otros Sistemas
La mayoría de los sistemas modernos pueden enviar solicitudes HTTP:
- PLCs Siemens: Use bloques cliente HTTP
- Allen-Bradley: Use bloques de instrucción HTTP
- Python/C#/Java: Use bibliotecas HTTP estándar
- Aplicaciones personalizadas: Cualquier lenguaje de programación funciona
El formato de la solicitud es siempre el mismo:
- Método: POST
- URL:
http://[CAMERA_IP]:5001/pipeline/activate
- Cuerpo:
{"id": "RECIPE_NUMBER"}
Paso 7: Haga que Sea Aún Mejor
7.1 Añadir Validación de Recetas
¿Quiere evitar cambiar a recetas que no existen? Modifique su función:
let recipeID = msg.payload;
let validRecipes = ["10", "15", "20"]; // Your actual recipe IDs
if (!validRecipes.includes(recipeID)) {
msg.payload = "Invalid recipe: " + recipeID;
return null; // Don't send request
}
// Normal formatting continues...
7.2 Mapeo de Código de Producto
¿Quiere usar nombres de producto en lugar de números? Intente esto:
let productCodes = {
"BOLT_A": "10",
"BOLT_B": "15",
"SCREW_C": "20"
};
let recipeID = productCodes[msg.payload];
// Continue with formatting...
¡Ahora puede activar con nombres de producto en lugar de números!
7.3 Procesamiento de Respuestas
¿Quiere mejores mensajes de éxito/errores? Añada otra función después de la Solicitud HTTP:
let response = JSON.parse(msg.payload);
if (response.success) {
msg.payload = "✓ Recipe changed successfully!";
} else {
msg.payload = "✗ Recipe change failed: " + response.error;
}
return msg;
Paso 8: Solución rápida de problemas
¿No funciona? Aquí están las correcciones más comunes:
Problema | Solución rápida |
---|---|
Error "Receta no encontrada" | Verifique que el número de ID de receta en la URL sea correcto |
Sin respuesta | Verifique la dirección IP de la cámara y la conexión de red |
Mensaje "Parse error" | Verifique que el código del nodo Function esté copiado correctamente |
La receta no cambia | Asegúrese de que la receta exista y no esté dañada |
¿Sigue teniendo problemas? Verifique que su cámara esté en línea y accesible desde Node-RED.
¡Lo logró!
¡Felicidades! Ahora tiene control remoto de las recetas de su cámara OV20i. Con solo unos clics, ha construido un sistema que puede:
- Cambiar recetas instantáneamente desde cualquier dispositivo en su red
- Integrar con sistemas existentes como PLCs, tabletas o computadoras
- Soportar múltiples recetas con simples clics de botón
- Validar solicitudes para evitar errores
- Trabajar con aplicaciones personalizadas usando tecnología web estándar
¿Qué sigue?
Ahora que tiene lo básico funcionando, puede:
Pasos siguientes fáciles
- Agregar más botones de recetas para todos sus productos
- Probar desde diferentes dispositivos como tabletas o teléfonos
- Crear mapeos de productos personalizados para una operación más sencilla
Ideas Avanzadas
- Construir dashboards de operador con botones de selección de receta
- Conectar a escáneres de códigos de barras para selección automática de recetas
- Integrar con sistemas MES para coordinación de la línea de producción
- Agregar registros para rastrear qué recetas se utilizan y cuándo
Ejemplos del mundo real
Así es como otros usan el cambio de receta vía HTTP:
- Embalaje de alimentos: El escáner de código de barras activa un cambio de receta para diferentes tamaños de empaque
- Automotriz: El PLC cambia las recetas según el tipo de pieza que avanza por la línea
- Electrónica: Tableta del operador con botones de receta para diferentes placas de circuito
- Control de calidad: Cambio automático de recetas según el programa de producción
Las posibilidades son infinitas, y todo comienza con el sistema simple que acaba de construir!